package com.heima.utils.thread;

import com.heima.wemedia.pojo.WmUser;

/**
 * 当前创建的线程用来存储自媒体用户信息，而不用session来存储
 * 因为线程更加隔离，数据得到保证。另外用户的每一次请求就是一个线程
 */
public class WmThreadLocalUtil {
    //创建了线程
    //这里的泛型取决于你要存储的数据类型，如果只是单纯的存储id，那么long或String就可
    //下面设置泛型为WmUser，因为后面可能还用到了WmUser的其它数据
    private final static ThreadLocal<WmUser> WM_USER_THREAD_LOCAL = new ThreadLocal<>();

    //存入线程
    public static void setUser(WmUser wmUser) {
        WM_USER_THREAD_LOCAL.set(wmUser);
    }

    //从线程中获取数据
    public static WmUser getUser() {
        return WM_USER_THREAD_LOCAL.get();
    }

    //销毁线程
    public static void clear() {
        WM_USER_THREAD_LOCAL.remove();
    }
}
